// from MS source
internal const string UI_PropertyKey = "-7363-696e-8441-798acf5aebb7";
// Core command properties
public static PropertyKey UI_PKEY_Enabled = new PropertyKey(new Guid(Convert.ToString(1, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_BOOL);
public static PropertyKey UI_PKEY_LabelDescription = new PropertyKey(new Guid(Convert.ToString(2, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_Keytip = new PropertyKey(new Guid(Convert.ToString(3, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_Label = new PropertyKey(new Guid(Convert.ToString(4, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_TooltipDescription = new PropertyKey(new Guid(Convert.ToString(5, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_TooltipTitle = new PropertyKey(new Guid(Convert.ToString(6, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_LargeImage = new PropertyKey(new Guid(Convert.ToString(7, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UNKNOWN); // IUIImage
public static PropertyKey UI_PKEY_LargeHighContrastImage = new PropertyKey(new Guid(Convert.ToString(8, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UNKNOWN); // IUIImage
public static PropertyKey UI_PKEY_SmallImage = new PropertyKey(new Guid(Convert.ToString(9, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UNKNOWN); // IUIImage
public static PropertyKey UI_PKEY_SmallHighContrastImage = new PropertyKey(new Guid(Convert.ToString(10, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UNKNOWN); // IUIImage
// Collections properties
internal static PropertyKey UI_PKEY_CommandId = new PropertyKey(new Guid(Convert.ToString(100, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4);
internal static PropertyKey UI_PKEY_ItemsSource = new PropertyKey(new Guid(Convert.ToString(101, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UNKNOWN); // IEnumUnknown or IUICollection
internal static PropertyKey UI_PKEY_Categories = new PropertyKey(new Guid(Convert.ToString(102, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UNKNOWN); // IEnumUnknown or IUICollection
internal static PropertyKey UI_PKEY_CategoryId = new PropertyKey(new Guid(Convert.ToString(103, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4);
internal static PropertyKey UI_PKEY_SelectedItem = new PropertyKey(new Guid(Convert.ToString(104, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4);
internal static PropertyKey UI_PKEY_CommandType = new PropertyKey(new Guid(Convert.ToString(105, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4);
internal static PropertyKey UI_PKEY_ItemImage = new PropertyKey(new Guid(Convert.ToString(106, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UNKNOWN); // IUIImage
// Control properties
public static PropertyKey UI_PKEY_BooleanValue = new PropertyKey(new Guid(Convert.ToString(200, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_BOOL);
public static PropertyKey UI_PKEY_DecimalValue = new PropertyKey(new Guid(Convert.ToString(201, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_DECIMAL);
public static PropertyKey UI_PKEY_StringValue = new PropertyKey(new Guid(Convert.ToString(202, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_MaxValue = new PropertyKey(new Guid(Convert.ToString(203, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_DECIMAL);
public static PropertyKey UI_PKEY_MinValue = new PropertyKey(new Guid(Convert.ToString(204, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_DECIMAL);
public static PropertyKey UI_PKEY_Increment = new PropertyKey(new Guid(Convert.ToString(205, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_DECIMAL);
public static PropertyKey UI_PKEY_DecimalPlaces = new PropertyKey(new Guid(Convert.ToString(206, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4);
public static PropertyKey UI_PKEY_FormatString = new PropertyKey(new Guid(Convert.ToString(207, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_RepresentativeString = new PropertyKey(new Guid(Convert.ToString(208, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
// Font control properties
public static PropertyKey UI_PKEY_FontProperties = new PropertyKey(new Guid(Convert.ToString(300, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UNKNOWN); // IPropertyStore
public static PropertyKey UI_PKEY_FontProperties_Family = new PropertyKey(new Guid(Convert.ToString(301, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_FontProperties_Size = new PropertyKey(new Guid(Convert.ToString(302, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_DECIMAL);
public static PropertyKey UI_PKEY_FontProperties_Bold = new PropertyKey(new Guid(Convert.ToString(303, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_FONTPROPERTIES
public static PropertyKey UI_PKEY_FontProperties_Italic = new PropertyKey(new Guid(Convert.ToString(304, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_FONTPROPERTIES
public static PropertyKey UI_PKEY_FontProperties_Underline = new PropertyKey(new Guid(Convert.ToString(305, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_FONTPROPERTIES
public static PropertyKey UI_PKEY_FontProperties_Strikethrough = new PropertyKey(new Guid(Convert.ToString(306, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_FONTPROPERTIES
public static PropertyKey UI_PKEY_FontProperties_VerticalPositioning = new PropertyKey(new Guid(Convert.ToString(307, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_FONTVERTICALPOSITION
public static PropertyKey UI_PKEY_FontProperties_ForegroundColor = new PropertyKey(new Guid(Convert.ToString(308, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // COLORREF
public static PropertyKey UI_PKEY_FontProperties_BackgroundColor = new PropertyKey(new Guid(Convert.ToString(309, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // COLORREF
public static PropertyKey UI_PKEY_FontProperties_ForegroundColorType = new PropertyKey(new Guid(Convert.ToString(310, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_SWATCHCOLORTYPE
public static PropertyKey UI_PKEY_FontProperties_BackgroundColorType = new PropertyKey(new Guid(Convert.ToString(311, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_SWATCHCOLORTYPE
public static PropertyKey UI_PKEY_FontProperties_ChangedProperties = new PropertyKey(new Guid(Convert.ToString(312, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UNKNOWN); // IPropertyStore
public static PropertyKey UI_PKEY_FontProperties_DeltaSize = new PropertyKey(new Guid(Convert.ToString(313, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UINT); // UI_FONTDELTASIZE
// Application menu properties
public static PropertyKey UI_PKEY_RecentItems = new PropertyKey(new Guid(Convert.ToString(350, 16).PadLeft(8, '0') + UI_PropertyKey), (int)(VarEnum.VT_ARRAY | VarEnum.VT_UNKNOWN));
public static PropertyKey UI_PKEY_Pinned = new PropertyKey(new Guid(Convert.ToString(351, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_BOOL);
// Color picker properties
public static PropertyKey UI_PKEY_Color = new PropertyKey(new Guid(Convert.ToString(400, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // COLORREF
public static PropertyKey UI_PKEY_ColorType = new PropertyKey(new Guid(Convert.ToString(401, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_SWATCHCOLORTYPE
public static PropertyKey UI_PKEY_ColorMode = new PropertyKey(new Guid(Convert.ToString(402, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_SWATCHCOLORMODE
public static PropertyKey UI_PKEY_ThemeColorsCategoryLabel = new PropertyKey(new Guid(Convert.ToString(403, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_StandardColorsCategoryLabel = new PropertyKey(new Guid(Convert.ToString(404, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_RecentColorsCategoryLabel = new PropertyKey(new Guid(Convert.ToString(405, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_AutomaticColorLabel = new PropertyKey(new Guid(Convert.ToString(406, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_NoColorLabel = new PropertyKey(new Guid(Convert.ToString(407, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_MoreColorsLabel = new PropertyKey(new Guid(Convert.ToString(408, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_LPWSTR);
public static PropertyKey UI_PKEY_ThemeColors = new PropertyKey(new Guid(Convert.ToString(409, 16).PadLeft(8, '0') + UI_PropertyKey), (int)(VarEnum.VT_VECTOR | VarEnum.VT_UI4));
public static PropertyKey UI_PKEY_StandardColors = new PropertyKey(new Guid(Convert.ToString(400, 16).PadLeft(8, '0') + UI_PropertyKey), (int)(VarEnum.VT_VECTOR | VarEnum.VT_UI4));
public static PropertyKey UI_PKEY_ThemeColorsTooltips = new PropertyKey(new Guid(Convert.ToString(411, 16).PadLeft(8, '0') + UI_PropertyKey), (int)(VarEnum.VT_VECTOR | VarEnum.VT_LPWSTR));
public static PropertyKey UI_PKEY_StandardColorsTooltips = new PropertyKey(new Guid(Convert.ToString(412, 16).PadLeft(8, '0') + UI_PropertyKey), (int)(VarEnum.VT_VECTOR | VarEnum.VT_LPWSTR));
// Ribbon properties
public static PropertyKey UI_PKEY_Viewable = new PropertyKey(new Guid(Convert.ToString(1000, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_BOOL);
public static PropertyKey UI_PKEY_Minimized = new PropertyKey(new Guid(Convert.ToString(1001, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_BOOL);
public static PropertyKey UI_PKEY_QuickAccessToolbarDock = new PropertyKey(new Guid(Convert.ToString(1002, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4);
// Contextual tabset properties
public static PropertyKey UI_PKEY_ContextAvailable = new PropertyKey(new Guid(Convert.ToString(1100, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4);
// Color properties
// These are specified using hue, saturation and brightness. The background, highlight and text colors of all controls
// will be adjusted to the specified hues and saturations. The brightness does not represent a component of a specific
// color, but rather the overall brightness of the controls - 0x00 is darkest, 0xFF is lightest.
public static PropertyKey UI_PKEY_GlobalBackgroundColor = new PropertyKey(new Guid(Convert.ToString(2000, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_HSBCOLOR
public static PropertyKey UI_PKEY_GlobalHighlightColor = new PropertyKey(new Guid(Convert.ToString(2001, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_HSBCOLOR
public static PropertyKey UI_PKEY_GlobalTextColor = new PropertyKey(new Guid(Convert.ToString(2002, 16).PadLeft(8, '0') + UI_PropertyKey), (int)VarEnum.VT_UI4); // UI_HSBCOLOR
None.